\documentclass[12pt,A4Paper]{report}
\usepackage{graphicx}
\usepackage{amsmath}
 
\parindent 0pt
\parskip 6pt

\begin{document}

\graphicspath{C:/Users/Matt/My Documents/!University
Work/CompSci/workspace/PartII/gr/}

\chapter{Introduction}

With more and more people owning smart phones the need to transfer information
between devices has become a larger issue. Some example methods of data transfer
include: multimedia messaging; infrared; bluetooth; WiFi; and 3G. A more recent
method of transferring small text messages, such as internet links, is through a
\emph{Quick Response} (QR) code, which is scanned and decoded using the phone's
camera and a dedicated application. These QR codes have become increasingly
popular~\cite{FINDCITATION}, not only in phone to phone data transfer but also
in advertising.

I intend to create a low-level OSI layer for Android which allows for data to be
transferred using sound. This can then be used to make a similar technology to QR codes
using audio rather than visual data.

\section{Motivation}

The main weaknesses of QR codes are the need to be close enough
to the code to accurately scan it, so for long distances the code needs to be made
very large, and needing to hold the camera still enough to scan the image, which
is not always possible in a crowd or in a moving vehicle. They can also only
contain a small amount of information, 2kb in binary format~\cite{FINDCITATION}.
This is useless for transferring larger files and most QR programs that offer
large file transfer opt instead to upload the file to a webserver and encode the
link in the QR code. If you wanted to send data without using an internet
connection this won't work.

Using sound as the transmission medium means longer files can be encoded
using longer sounds which is more feasible than implementing an ever
increasing size QR code. There will be little need to hold the receiving
device steady and due to the quantity of research in noise
cancellation~\cite{FINDCITATION} background noise should be less of a problem
than camera stabilisation. Furthermore, f the receiving device is further away
from the transmitter you simply need to increase the volume rather than print a
larger QR code or purchase a larger computer display, both of which could be
expensive.

The data-link layer is preferable for this project as it means more layers above
it can access the functionality of the concept. If I implemented an application
layer sound transfer system other applications would be harder to integrate this
into and it would be less useful. This way other Android app programmers can use
the data-link layer to implement file transfer systems, QR code style sounds,
discreet text communication systems, and more.

\section{Android and Java}

I have chosen to use Android for this project, rather than one of the other
major mobile OS providers, because Android is open source. This means it is
easier to access the underlying hardware on the phone such as the microphone and
speakers, and app programmers have more freedom to use this layer in their
projects. Android also uses Java which has numerous built-in libraries and
custom libraries that will prove useful.

\section{Project Summary}

In Chapter 2 I discuss the background knowledge required for implementing this
project, including sound theory, how to decode signals and some existing work
that does similar things. I also describe a testing strategy and detail the
software development methodology I use and how I have incorporated version
control in my work. I also briefly outline the Android application lifecycle as
Dolphin uses Android and all testing takes place using an Android app.

In Chapter 3 I describe specifically how I encode data as sound and then decode
it again. This includes the subtle differences between Java and Android
programming in this field and the complications that need to be addressed when
programming a mobile app for Android. I also describe the existing libraries I
make use of to complete the work and present some results of the ongoing testing
that took place during the software development.

In Chapter 4 I show how the original criteria were achieved using the test plan
in Chapter 2. I present a more detailed account of the tests that produced the
results described at the end of Chapter 3 and use the results to carry out a
significant improvement to the implementation. A comparison between the original
design and the new version is then presented.

\end{document}